An attribute of asynchronous transfer mode (ATM) systems is the ability to provide a user-specified quality of service (QoS) on a connection basis. ATM allows multiple connections to be established over a single physical link and allows a different QoS to be associated with each connection. For example, the QoS may include the priority assigned to a connection so that a voice connection may be assigned a higher priority than a data connection. This prioritization permits information transmitted over the higher priority connections to experience a smaller propagation delay as it travels from the sender to the receiver. Thus, in a network carrying large amounts of information, voice transmission will typically experience minimal delays while the data may be delayed longer and some data packets may even be lost.
ATM is most commonly used in connection-oriented networks that require a setup procedure for every connection established through the network. The setup procedure requires that the requesting party define the QoS to be associated with that connection.
The QoS is defined by a traffic contract that is negotiated between the requestor and the network: the network will either agree to this traffic contract and establish a connection or it will reject the contract and block the connection. Certain applications, such as real-time multi-media, cellular, and telephony communications, demand efficiency and speed from the ATM network. This efficiency and speed is required not only in the transmission of information over connections but also in the initial setup of those connections.
The parameters used to define the traffic contract in ATM networks are very flexible, allowing in theory a very large number of different traffic contracts. The speed with which an ATM network can set up a connection is directly related to how efficiently the network can interpret the information in the requested traffic contract. Conventional ATM networks are relatively slow, generally capable of setting up between 10 and 100 connections per second.
Many factors determine the speed of connection setup, including the type and number of CPUs used in the ATM network, the speed of the signaling connection, the routing algorithms, etc. However, one of the major factors affecting connection setup speed is the generality of the traffic contract concept and the effort required by the network to interpret the contract proposed by a connection requestor. Current attempts to improve connection setup times include utilizing faster CPUs, changing network protocols, and dividing the network into a number of smaller partitions with fewer connection setup requests. However, these implementations are costly and can be difficult to implement in many networks.
Accordingly, it is an object of this invention to provide a cost-effective means to improve ATM network performance by significantly reducing the time required to interpret traffic contract requirements and to subsequently set up the desired connection. It is a further object of this invention to provide an ATM network connection setup mechanism that is adaptable to new types of applications with new QoS requirements.
These and other objects of the invention will become apparent to those skilled in the art from the following description thereof.
In accordance with the teachings of the present invention, these and other objects may be accomplished by the present invention, which enables reduction of the connection setup time in ATM networks by storing the attributes for connections with varying QoS characteristics in memory. These attributes need to be calculated only once, either when the network is initially configured or as the network learns of the connections required by different applications, and the results can be directly applied to all subsequent connection setup requests with similar or identical QoS requirements.
An embodiment of the invention includes an apparatus that accelerates ATM connection setup between network nodes. The apparatus includes a receiver, an analysis memory, an analysis engine, a setup memory, a setup engine, and a setup configuration block. The receiver may be configured to recognize an ATM connection setup message containing one or more parameters, including one or more traffic contract parameters. The analysis memory may contain predefined traffic contract configurations that have either been configured by individuals or learned by the setup configuration block. Each traffic contract configuration stored in the analysis memory contains a reference to an entry in the setup memory. Each entry in the setup memory contains a set of parameters that is used by the setup engine to allocate resources and establish an ATM connection.
Upon receipt of a message by the apparatus, the receiver analyzes the message to determine if it is an ATM setup message. If so, the receiver extracts the traffic contract parameters from the message and passes the parameters to the analysis engine. The analysis engine compares the traffic contract parameters to the entries in the analysis memory in an attempt to find a matching entry.
In a practice of the invention, the analysis engine may be designed to use fuzzy logic or neural network techniques so than an exact match is not required; the analysis engine finds the xe2x80x9cbestxe2x80x9d match according to criteria defined for the fuzzy logic or neural network search.
On finding a matching entry, the analysis engine extracts the reference to the setup memory and passes this reference to the setup engine. The setup engine uses the information contained in the reference setup memory entry to allocate resources, to create the required ATM connection and to establish the Quality of Service (QoS) parameters for the connection.
In another practice of the invention, the setup configuration block may analyze the traffic contract parameters and generate new setup parameters which it uses to create the required ATM connection and to establish the Quality of Service (QoS) parameters for the connection. It also may store the results of its analysis in the setup memory and create a pattern in the analysis memory with a reference to the setup memory entry. This procedure will ensure that the delay incurred by detailed analysis is not repeated when similar requests are received in subsequent setup messages.